Skip to content

Conversation

@majisourav99
Copy link
Contributor

@majisourav99 majisourav99 commented Nov 18, 2025

Problem Statement

Add seek to tails API in Seeking DVC DRVR client to existing set of other seep APIs like seek by check point and seek by timestamps.

Solution

Code changes

  • Added new code behind a config. If so list the config names and their default values in the PR description.
  • Introduced new log lines.
    • Confirmed if logs need to be rate limited to avoid excessive logging.

Concurrency-Specific Checks

Both reviewer and PR author to verify

  • Code has no race conditions or thread safety issues.
  • Proper synchronization mechanisms (e.g., synchronized, RWLock) are used where needed.
  • No blocking calls inside critical sections that could lead to deadlocks or performance degradation.
  • Verified thread-safe collections are used (e.g., ConcurrentHashMap, CopyOnWriteArrayList).
  • Validated proper exception handling in multi-threaded code to avoid silent thread termination.

How was this PR tested?

  • New unit tests added.
  • New integration tests added.
  • Modified or extended existing tests.
  • Verified backward compatibility (if applicable).

Does this PR introduce any user-facing or breaking changes?

  • No. You can skip the rest of this section.
  • Yes. Clearly explain the behavior change and its impact.

@majisourav99 majisourav99 changed the title [client [client][da-vinci-client] Add seek to tails API in Seeking DVC client Nov 18, 2025
@majisourav99 majisourav99 force-pushed the seeking branch 2 times, most recently from c7f2820 to 91a37de Compare November 21, 2025 00:29
if (targetRegions.contains(currentRegion) || startIngestionInNonTargetRegion || !isTargetRegionEnabled) {
LOGGER.info("Subscribing to future version {}", targetVersion.kafkaTopicName());
setDaVinciFutureVersion(new VersionBackend(backend, targetVersion, stats));
// For future version subscription, we don't need to pass any timestamps or position map
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: Can we update this comment please

Comment on lines +2307 to +2312
// report completion immediately for user seek subscription
partitionConsumptionStateMap.get(partition).lagHasCaughtUp();
reportCompleted(partitionConsumptionStateMap.get(partition), true);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Won't this only be true for seekToTail? What if a user passes in 0 into seekToTimestamp?

Comment on lines 918 to 922
for (DefaultPubSubMessage message: messages) {
System.out.println(
"position: " + message.getPosition() + "ts11 "
+ message.getValue().getProducerMetadata().getMessageTimestamp());
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cleanup?

@majisourav99 majisourav99 force-pushed the seeking branch 2 times, most recently from db91680 to d1200b4 Compare November 25, 2025 02:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants